00001
00002
00003
00004
00005
00006 #ifndef _uc_components_h_
00007 #define _uc_components_h_
00008
00009 #include "boost/smart_ptr/shared_ptr.hpp"
00010 #include "gridpack/utilities/complex.hpp"
00011 #include "gridpack/component/base_component.hpp"
00012 #include "gridpack/component/data_collection.hpp"
00013
00014 namespace gridpack {
00015 namespace ucCommitment {
00016
00017 class UCBus
00018 : public gridpack::component::BaseBusComponent {
00019 public:
00020
00021
00022
00023 UCBus(void);
00024
00025
00026
00027 ~UCBus(void);
00028
00029 double objectiveFunction(void);
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049 void load(const boost::shared_ptr<gridpack::component::DataCollection> &data);
00050
00051
00052
00053
00054 void setCostConst(void);
00055
00056
00057
00058
00059 void getCostConst(void);
00060
00061
00062
00063
00064
00065 void setLinearConst(void);
00066
00067
00068
00069
00070 void getLinearConst(void);
00071
00072
00073
00074
00075 void setQuadConst(void);
00076
00077
00078
00079
00080 void getQuadConst(void);
00081
00082 private:
00083
00084 int p_numUnits;
00085 int p_numHorizons;
00086 std::vector<double> p_up;
00087 std::vector<int> p_ustatus;
00088 std::vector<double> p_demand;
00089 std::vector<double> p_minPower;
00090 std::vector<double> p_maxPower;
00091 std::vector<double> p_minUptime;
00092 std::vector<double> p_minDntime;
00093 std::vector<double> p_constConst;
00094 std::vector<double> p_constLinear;
00095 std::vector<double> p_constQuad;
00096 };
00097
00098 class UCBranch
00099 : public gridpack::component::BaseBranchComponent {
00100 public:
00101
00102
00103
00104 UCBranch(void);
00105
00106
00107
00108 UCBranch(void);
00109 private:
00110
00111 };
00112 }
00113 }
00114
00115 BOOST_CLASS_EXPORT_KEY(gridpack::ucCommitment::UCBus);
00116 BOOST_CLASS_EXPORT_KEY(gridpack::ucCommitment::UCBranch);
00117
00118
00119 #endif
00120